Estoy creando un proyecto laravel en un contenedor docker, junto con MySQL y phpmyadmin, cuando intento migrar (o acceder a la base de datos desde phpmyadmin) obtengo un error de acceso denegado.
Probé varias soluciones SOF pero ninguna funcionó, también probé algunas en problemas de GitHub.
aquí está mi docker-compose.yml
version: "3" services: web: container_name: ${APP_NAME}_web build: context: ./docker/web ports: - 9000:80 volumes: - ./:/var/www/app networks: - mynet db: image: mysql:5.7 container_name: db command: --default-authentication-plugin=mysql_native_password restart: always ports: - "3306:3306" environment: MYSQL_DATABASE: laracocodb MYSQL_USER: root MYSQL_PASSWORD: root MYSQL_ROOT_PASSWORD: root volumes: - mysqldata:/var/lib/mysql/ networks: - mynet phpmyadmin: image: phpmyadmin/phpmyadmin container_name: phpma links: - db:db ports: - 9191:80 environment: MYSQL_USERNAME: root MYSQL_ROOT_PASSWORD: root PMA_HOST: db networks: - mynet networks: mynet: driver: bridge volumes: mysqldata: driver: localno importa desde dónde acceda a la base de datos (desde bash del contenedor db, desde la página de índice de phpmyadmin o desde el servicio web cuando intento migrar la base de datos), el error siempre es acceso denegado
También me he encontrado con este problema muchas veces, de forma predeterminada, MySQL permite que el usuario localhost acceda a la raíz, lo que significa que incluso si ha abierto el puerto 3306:3306, aún necesitará agregar el usuario.
¡Siga estos comandos y el error se resolverá!